/*
 * DatosConfiguracion.cpp
 *
 *  Created on: May 14, 2013
 *      Author: Hernan
 */

#include "DatosConfiguracion.h"

void DatosConfiguracion::cargarInfoConexion(string arch_conexion) {
	ifstream archivo(arch_conexion.c_str());
	char* buffer = new char[255];

	if (archivo.is_open() ){

		for (int i=0; i < 2 ; i++){
			archivo.getline(buffer,255,'\n');
			string s(buffer);
			cout<<s<<endl;
		}

		while(!archivo.eof()){
			archivo.getline(buffer,255,'\n');
			string str(buffer);
			string valor = str.substr(str.find("=")+2,str.size()-(str.find("=")+2));
			string tipoCampo = str.substr(0,str.find("=")-1);
			if (tipoCampo.find("port")!=std::string::npos){
				this->port = atoi(valor.c_str());
			}
			else{
				this->ip = valor;
			}
		}
	}
	delete []buffer;
}

void DatosConfiguracion::cargarInfoJugadores(string arch_jugadores) {
	ifstream archivo(arch_jugadores.c_str());
	char* buffer = new char[255];

	if (archivo.is_open() ){

		for (int i=0; i < 2 ; i++){
			archivo.getline(buffer,255,'\n');
			string s(buffer);
			cout<<s<<endl;
		}

		while(!archivo.eof()){
			archivo.getline(buffer,255,'\n');
			string str(buffer);
			this->listaPersonajes.push_back(str);
		}
	}
	delete []buffer;
}

int DatosConfiguracion::getPuerto(){
	return this->port;
}

string DatosConfiguracion::getIP(){
	return this->ip;
}

list<string> DatosConfiguracion::getListaPersonajes(){
	return this->listaPersonajes;
}

bool DatosConfiguracion::personajeEsSeleccionable(string s){
	bool encontrado=false;
	list<string>::iterator it = this->listaPersonajes.begin();
	while(it!=this->listaPersonajes.end() && !(encontrado)){
		encontrado = ((*it).compare(s)==0);
		++it;
	}
	return encontrado;
}

DatosConfiguracion::~DatosConfiguracion() {
	// TODO Auto-generated destructor stub
}

